Enterprises today oftentimes rely on relational database systems for efficiently storing, indexing and querying data used by their applications. Recently, several commercial cloud database services have emerged. These services can be viewed as data platforms upon which enterprises can build, tune, and deploy their applications; hence, the cloud database services are typically classified as platform-as-a-service (PaaS). The database service provider is typically responsible for provisioning computing devices, patching, ensuring high availability, and geo-replication. Moreover, the familiar relational paradigm, combined with potential of reduced total cost of ownership, may motivate some enterprises to consider cloud database services as a viable platform for their applications.
The cloud database services, which are typically hosted in data centers that include several computing devices, are oftentimes multi-tenant. Multi-tenancy is used by the service provider to increase consolidation and reduce cost, since dedicating (e.g., reserving) resources up-front for each tenant can be associated with significant expenses. Database service providers typically overcommit resources of their computing devices based on the observation that at any point in time some tenants on the computing device are likely to be much less demanding of resources than others.
An architecture for cloud database services can include a computing device upon which a database server is running. Such computing device can host the data and workload of multiple tenants. Each tenant is allocated a separate logical database, and tenants generally do not share data. In such a multi-tenant database system, resources of the database server are shared by the workloads of tenants assigned to that server. Therefore, when a query workload of one tenant executes on a particular computing device, it consumes resources and can thereby adversely affect the performance of another tenant's queries on the same computing device. This tension between the service provider reducing cost by increasing multi-tenancy, and the desire of tenants for assured performance can slow the transition of enterprise applications to the cloud.